Conversion to Revit
Revit Toolkit support conversion of many BHoM object types to Revit: they are listed in the table below together with their relevant Revit types. As a general rule, analytical objects (of types that belong to namespaces BH.oM.Structure
or BH.oM.Environment
) are not allowed to be pushed to Revit - their physical equivalents (objects of types from BH.oM.Physical
namespace) should be used instead. So far, the only exception from that rule is BH.oM.Environment.Elements.Space
.
BHoM Type |
Revit Category |
Revit Type |
---|---|---|
BH.oM.Geometry.SettingOut.Grid |
Grids | Autodesk.Revit.DB.Grid |
BH.oM.Geometry.SettingOut.Level |
Levels | Autodesk.Revit.DB.Level |
BH.oM.Physical.Elements.Wall |
Walls | Autodesk.Revit.DB.Wall |
BH.oM.Physical.Elements.Floor |
Floors / Structural Foundations | Autodesk.Revit.DB.Floor |
BH.oM.Physical.Elements.Roof |
Roofs | Autodesk.Revit.DB.RoofBase |
BH.oM.Physical.Elements.Column |
Structural Columns | Autodesk.Revit.DB.FamilyInstance |
BH.oM.Physical.Elements.Beam |
Structural Framing | Autodesk.Revit.DB.FamilyInstance |
BH.oM.Physical.Reinforcement.IReinforcingBar |
Structural Rebar | Autodesk.Revit.DB.Structure.Rebar |
BH.oM.Environment.Elements.Space |
Spaces | Autodesk.Revit.DB.Mechanical.Space |
BH.oM.Adapters.Revit.Elements.ViewPlan |
Views (Plan) | Autodesk.Revit.DB.ViewPlan |
BH.oM.Adapters.Revit.Elements.Viewport |
Viewports | Autodesk.Revit.DB.Viewport |
BH.oM.Adapters.Revit.Elements.ViewSheet |
Sheets | Autodesk.Revit.DB.Sheet |
BH.oM.MEP.System.Duct |
Ducts | Autodesk.Revit.DB.Mechanical.Duct |
BH.oM.MEP.System.Pipe |
Pipes | Autodesk.Revit.DB.Plumbing.Pipe |
BH.oM.MEP.System.CableTray |
Cable Trays | Autodesk.Revit.DB.Electrical.CableTray |
BH.oM.Adapters.Revit.Parameters.ParameterDefinition |
- | Autodesk.Revit.DB.ParameterElement |
BH.oM.Adapters.Revit.Elements.Family |
- | Autodesk.Revit.DB.Family |
BH.oM.Adapters.Revit.Elements.InstanceProperties |
- | Autodesk.Revit.DB.ElementType |
Conversion of BHoM object properties such as Construction
or FramingProperties
to Revit is currently not supported - Revit element type is applied based on name matching with defining property of a BHoM object (e.g. Construction
of a wall or Property
of a beam). Therefore, to create a Revit element of given family type, one needs to set BHoM object's property name to same value. Example of Push using this approach is available in examples.
On top of the above list, there are three powerful generic types in Revit_Adapter that can wrap any Revit element. These are:
ModelInstance
- any Revit view independent element that hasLocation
propertyDraftingInstance
- any Revit view dependent element that hasLocation
propertyInstanceProperties
- any RevitElementType
orGraphicsStyle
The above types can be used on Push to create Revit elements that do not have a correspondent BHoM type, e.g. mechanical equipment, generic annotations or filled regions - examples of these can be found in examples.
It is worth noting that pushing BHoM geometries directly to Revit is not allowed - they always need to be wrapped into some type of object (if are meant to be pushed as primitives, ModelInstance
or DraftingInstance
is recommended. Similarly, on pull, each geometrical Revit element will be wrapped into a non-primitive BHoM type.
A limited ability to create Revit types is provided by BH.oM.Adapters.Revit.ClonedType
object - pushing it creates a clone of an existing Revit element type with a new name, which then can be updated freely.
The last two rows of the table, Family
and InstanceProperties
, correspond to an action of loading the families or chosen types to the model - this works only in combination with FamilyLibrary.